home *** CD-ROM | disk | FTP | other *** search
/ Adobe Graphics & Publishing SDK 1996 December / Adobe Graphics & Publishing SDK 1996 December.iso / pc / pm65sdk / sourcecode / c_language / loadf / common / main.cpp < prev   
C/C++ Source or Header  |  1996-09-05  |  5KB  |  252 lines

  1. /*
  2.  *--- main.cpp ----------------------------------------------------------
  3.  * Copyright (c) 1992-96 Adobe Systems, Inc.  All rights reserved.
  4.  *
  5.  * PageMaker plug-in.
  6.  *-----------------------------------------------------------------------
  7.  */
  8.  
  9. /* ---------------- PageMaker SDK include files ---------------- */
  10. #include "PMPlugin.h"
  11.  
  12. /* ---------------- Plug-in include files ---------------- */
  13. #include "ExportF.h"
  14. #ifdef MACINTOSH
  15.     #include "WinTypes.h"
  16. #endif
  17.  
  18. /* ---------------- Cross-platform include files ---------------- */
  19. #include <string.h>
  20. #include <stdio.h>
  21.  
  22. /* ---------------- Platform specific include files ---------------- */
  23. #ifdef MACINTOSH
  24.     #include <types.h>
  25.     #ifndef powerc
  26.         #include <A4Stuff.h>
  27.         #include <SetUpA4.h>
  28.     #endif
  29. #else
  30.     #include <windows.h>
  31. #endif
  32.  
  33. /* ---------------- Type definitions ---------------- */
  34.  
  35. /* ---------------- Definitions ---------------- */
  36. #define SUCCESS    1
  37. #define FAILURE 0
  38. #define STAYINMEMORY -1
  39.  
  40. /* ---------------- PageMaker (New)SDK include files ---------------- */
  41. #include "CIInterfaceManager.h"
  42. #include "PMInterfaceIDs.h"
  43. #include "CICommandsAndQueries.h"
  44.  
  45. /* ---------------- Function declarations ---------------- */
  46. #ifdef MACINTOSH
  47.     #ifdef powerc
  48.         #pragma export on
  49.     #endif
  50.         PMXErr main(PMMessage *pMsg);
  51.     #ifdef powerc
  52.         #pragma export off
  53.     #endif
  54. #else
  55.     BOOL WINAPI DllMain (HINSTANCE hDLL, DWORD dwReason, LPVOID pReserved);
  56. #endif
  57.  
  58. PMXErr DoInvoke( PMMessage *pMsg );
  59. PMXErr DoLoad(PMMessage* pMsg);
  60. PMXErr DoRegister(PMMessage* pMsg);
  61. PMXErr DoInvoke(PMMessage* pMsg);
  62. PMXErr DoEvent(PMMessage* pMsg);
  63. PMXErr DoSysEvent(PMMessage* pMsg);
  64. PMXErr DoAcquireInterface(PMMessage* pMsg);
  65. PMXErr DoReleaseInterface( PMMessage *pMsg );
  66. PMXErr DoUnload(PMMessage* pMsg);
  67. PMXErr DoShutdown(PMMessage* pMsg);
  68. PMXErr DoCleanup(PMMessage* pMsg);
  69.  
  70. /* ---------------- Globals ---------------- */
  71. sPMParamBlockPtr thePB = NULL;
  72. CICommandQuery *gpCmdQry = (CICommandQuery *)NULL;
  73.  
  74. #ifdef WINDOWS
  75.     HINSTANCE ghDLL;
  76.  
  77. BOOL WINAPI DllMain (HINSTANCE hDLL, DWORD dwReason, LPVOID pReserved)
  78. {
  79.     ghDLL = hDLL;
  80.  
  81.     return TRUE;
  82. }
  83. #endif
  84.  
  85. /*
  86.  *--- main --------------------------------------------------------------------
  87.  *  Entry point for plug-in control tasks.
  88.  *-----------------------------------------------------------------------------
  89.  */ 
  90. PMXErr main(PMMessage *pMsg)
  91. {
  92.     PMXErr    result;
  93. #if __MWERKS__ && __MC68K__
  94.     long oldA4 = SetCurrentA4();
  95.     RememberA4();
  96. #endif
  97.  
  98.     CIInterfaceManager *pIntfMgr = pMsg->pInterfaceMgr;
  99.     
  100.     switch ( pMsg->opCode ) {
  101.         case kPMLoad: 
  102.             result = DoLoad(pMsg);
  103.             break;
  104.  
  105.         case kPMRegister: 
  106.             result = DoRegister(pMsg);
  107.             break;
  108.             
  109.         case kPMInvoke: 
  110.             result = DoInvoke(pMsg);
  111.             break;
  112.  
  113.         case kPMEvent: 
  114.             result = DoEvent(pMsg);
  115.             break;
  116.             
  117.         case kPMSysEvent: 
  118.             result = DoSysEvent(pMsg);
  119.             break;
  120.             
  121.         case kPMAcquireInterface: 
  122.             result = DoAcquireInterface(pMsg);
  123.             break;
  124.             
  125.         case kPMReleaseInterface: 
  126.             result = DoReleaseInterface(pMsg);
  127.             break;
  128.             
  129.         case kPMUnload: 
  130.             result = DoUnload(pMsg);
  131.             break;
  132.  
  133.         case kPMShutdown: 
  134.             result = DoShutdown(pMsg);
  135.             break;
  136.             
  137.         case kPMCleanup: 
  138.             result = DoCleanup(pMsg);
  139.             break;
  140.             
  141.         default: 
  142.             result = 0;
  143.     }
  144.  
  145. #if __MWERKS__ && __MC68K__
  146.     SetA4(oldA4);
  147. #endif
  148.  
  149.     return result;
  150. }
  151.  
  152. typedef PMXErr (MYCONVERT)(kUnits, float, kUnits, char *, float *, size_t *, PMBool);
  153.  
  154. PMXErr DoInvoke( PMMessage *pMsg )
  155. {
  156.     PMXErr result;
  157.     MYCONVERT *pPMInterface;
  158.     
  159.     if (!pMsg) 
  160.     {
  161.         return CQ_FAILURE;
  162.     }
  163.     CIInterfaceManager *pIntfMgr = pMsg->pInterfaceMgr;
  164.     if (!pIntfMgr) 
  165.     {
  166.         return CQ_FAILURE;
  167.     }
  168.  
  169.     pIntfMgr->AcquirePMInterface((char *)PIConvertName, (LPVOID *)&pPMInterface);
  170.     if (!pIntfMgr) 
  171.     {
  172.         return CQ_FAILURE;
  173.     }
  174.  
  175.     if (!pIntfMgr->AcquirePMInterface((unsigned long)PMIID_CMDQRY, (LPVOID *)&gpCmdQry))
  176.     {
  177.         gpCmdQry->Retrieve (&thePB);
  178.  
  179.         if (thePB)
  180.         {
  181.             PMErr    error;
  182.             char    buff[256];
  183.             size_t    buffSize;
  184.             float dSize;
  185.             
  186.             error = PBTextCommand(thePB, kXRSPointer, "newstory 1i 1i");
  187.             error = (pPMInterface)(kInches, (float)1, kMillimeters, buff, &dSize, &buffSize, true);
  188.             error = PBBinCommand(thePB, pm_textenter, kXRSPointer, buff, buffSize);
  189.             error = PBTextCommand(thePB, kXRSPointer, "view 100");
  190.         }    
  191.         pIntfMgr->ReleasePMInterface((LPVOID *)gpCmdQry);
  192.     }
  193.     pIntfMgr->ReleasePMInterface((char *)PIConvertName, (LPVOID *)&pPMInterface);
  194.  
  195.     return CQ_SUCCESS;
  196. }
  197.  
  198. PMXErr DoLoad(PMMessage* pMsg)
  199. {
  200. #pragma unused (pMsg)
  201.     return CQ_SUCCESS;
  202.  
  203. }
  204.  
  205. PMXErr DoRegister(PMMessage* pMsg)
  206. {
  207. #pragma unused (pMsg)
  208.     return CQ_SUCCESS;
  209. }
  210.  
  211. PMXErr DoEvent(PMMessage* pMsg)
  212. {
  213. #pragma unused (pMsg)
  214.     return CQ_SUCCESS;
  215. }
  216.  
  217. PMXErr DoSysEvent(PMMessage* pMsg)
  218. {
  219. #pragma unused (pMsg)
  220.     return CQ_SUCCESS;
  221. }
  222.  
  223. PMXErr DoAcquireInterface(PMMessage* pMsg)
  224. {
  225. #pragma unused (pMsg)
  226.     return CQ_SUCCESS;
  227. }
  228.  
  229. PMXErr DoReleaseInterface(PMMessage* pMsg)
  230. {
  231. #pragma unused (pMsg)
  232.     return CQ_SUCCESS;
  233. }
  234.  
  235. PMXErr DoUnload(PMMessage* pMsg)
  236. {
  237. #pragma unused (pMsg)
  238.     return CQ_SUCCESS;
  239. }
  240.  
  241. PMXErr DoShutdown(PMMessage* pMsg)
  242. {
  243. #pragma unused (pMsg)
  244.     return CQ_SUCCESS;
  245. }
  246.  
  247. PMErr DoCleanup(PMMessage* pMsg)
  248. {
  249. #pragma unused (pMsg)
  250.     return CQ_SUCCESS;
  251. }
  252.